#!/usr/bin/env python
# @FileName :0602作业.py
# @Time :2024/6/3 20:18
# @Author :JINGJING

# 编写函数实现：密码复杂度的验证
#     1.长度在8-18之间                      （不合格）
#     2.只使用了一种字符（字母/数字/特殊字符）   （弱）
#     3.使用了2种字符（字母/数字/特殊字符）     （中）
#     4.使用了3种字符（字母/数字/特殊字符）     （强）

import string
def Password_complexity(password:str) -> str:
    """
    判断密码复杂度是否符合要求
    :param password: 输入密码字符串
    :return: 返回密码复杂度的判断
    """
    if len(password) < 8 or len(password) > 18:
        return "不合格"
    letter_cnt=False
    digit_cnt=False
    special_cnt=False
    for i in password:
        if i in string.ascii_letters:
            letter_cnt=True
        elif i in string.digits:
            digit_cnt=True
        elif i in string.punctuation:
            special_cnt=True
    if letter_cnt and digit_cnt and special_cnt:
        return "强"
    elif (letter_cnt and digit_cnt) or (letter_cnt and special_cnt) or (digit_cnt and special_cnt):
        return "中"
    elif letter_cnt or digit_cnt or special_cnt:
        return "弱"
print(Password_complexity('aasq3e242@$R'))



# 编写函数实现：linux中的tree命令
# 需要使用标准库os
# import os
# print(os.listdir("../"))

import os
def linux_tree(dir:str,indent='') -> str:
    """
    实现linux中的tree命令
    :param dir: 输入文件或目录
    :return: 返回该文件或目录的子结构
    """
    if not os.path.exists(dir):
        print("文件或目录不存在")
        return
    if os.path.isfile(dir):
        print(f"{indent}{os.path.basename(dir)}")
        return
    print(f"{indent}{os.path.basename(dir)}/")
    for filename in os.listdir(dir):
        file_path = os.path.join(dir, filename)
        linux_tree(file_path, indent + '├───')  # 增加缩进以表示层级关系
linux_tree("../2024-06-02 python函数",'.')
